DERS TANITIM BİLGİLERİ


Dersin Adı
Tasarım Şablonları ve Yeniden Kod Düzenleme
Kodu
Yarıyıl
Teori
(saat/hafta)
Uygulama/Lab
(saat/hafta)
Yerel Kredi
AKTS
CE 611
Güz/Bahar
3
0
3
7.5
Ön-Koşul(lar)
Yok
Dersin Dili
İngilizce
Dersin Türü
Seçmeli
Dersin Düzeyi
Doktora
Dersin Veriliş Şekli -
Dersin Öğretim Yöntem ve Teknikleri
Dersin Koordinatörü -
Öğretim Eleman(lar)ı
Yardımcı(ları) -
Dersin Amacı Bu ders, tasarım şablonları ve yeniden kod düzenlenmesi üzerine derinlemesine çalışmayı amaçlar. Tasarım şablonları yazılım uzmanlarının daha önceden üzerinde çalışılmış ve kabul edilmiş çözümleri yeniden üretmesinin önüne geçmeye çalışırken, kodların yeniden düzenlenmesi ise özensiz geliştirilmiş yazılımların, harici davranışı değiştirmeden iyileştirilmesi, düzeltilmesi ve hatalardan arındırılmasını amaçlar. Tasarım Şablonları kod yazılmadan tasarımı iyileştirmek, yeniden düzenleme is kod yazıldıktan sonra tasarımı iyileştirmeyi hedefler. Hem tasarım şablonları hemde yeniden kod düzenleme teknikleri karmaşık, bakılabilir ve genişleyebilen yazılım sistemleri geliştirmeye yardım eder. Her iki metodun avantajları ve dezavantajları dersde tartışılacak, öğrenciler bu teknikleri ödevler aracılığı ile uygulama fırsatı bulacaklardır.
Öğrenme Çıktıları Bu dersi başarıyla tamamlayabilen öğrenciler;
  • tasarım şablonlarının formu ve içeriğini tanımlayabilecekler,
  • şablonların neyi içermediğini ve yazılım tasarımlarında nasıl uygulanabildiğini belirleyebilecekler,
  • uygun tasarım şablonunu belirleyip, seçebilecekler ve yazılım çözümlerinde kullanabilecekler,
  • yeniden kod düzenlemesi ile mevcut yazılımları iyileştirerek onları daha bakılabilir ve genişleyebilir hale getirebilecekler,
  • uygun yeniden kod düzenleme tekniklerini seçerek özel problemlerin çözümünde kullanabilecekler.
Ders Tanımı Bu ders karmaşık, bakılabilir ve genişleyebilen yazılım sistemlerin geliştirilmesinde kullanılan tasarım şablonları ve kod yeniden düzenleme teknikleri üzerine derinlemesine bir çalışmayı içerir.
Dersin İlişkili Olduğu Sürdürülebilir Kalkınma Amaçları

 



Dersin Kategorisi

Temel Ders
Uzmanlık/Alan Dersleri
X
Destek Dersleri
İletişim ve Yönetim Becerileri Dersleri
Aktarılabilir Beceri Dersleri

 

HAFTALIK KONULAR VE İLGİLİ ÖN HAZIRLIK ÇALIŞMALARI

Hafta Konular Ön Hazırlık
1 Tasarım şablonlarına giriş ve tasarım şablon kataloğu. Strateji Bölüm 1 Design Patterns. Gamma, Helm, Johnson and Vlissides (GHJV)
2 Oluşturucu Şablonlar: Soyut Fabrika, Yapıcı, Prototip Bölüm 3 Design Patterns. Gamma, Helm, Johnson and Vlissides (GHJV)
3 Yapısal Şablonlar- Bölüm 1: Adapter, Kompozit, Cephe Bölüm 4 Design Patterns. Gamma, Helm, Johnson and Vlissides (GHJV)
4 Yapısal Şablonlar- Bölüm 2: Köprü, Dekoratör Bölüm 4 Design Patterns. Gamma, Helm, Johnson and Vlissides (GHJV)
5 Davranışsal Şablonlar- Bölüm 1: Gözleyici, Aracı, Şablon Metod Bölüm 5 Design Patterns. Gamma, Helm, Johnson and Vlissides (GHJV)
6 Davranışsal Şablonlar- Bölüm 2: Hatıra, Durum Bölüm 5 Design Patterns. Gamma, Helm, Johnson and Vlissides (GHJV)
7 Vize
8 Yeniden düzenlemeye giriş, kötü kokan kodlar Bölüm 1-3 Refactoring. Fowler et.al. pp. 1-87.
9 Veriyi yönetmek Bölüm 8 Refactoring. Fowler et.al. pp 169-232.
10 Koşullu mantığı kaldırmak Bölüm 9 Refactoring. Fowler et.al. pp. 237-267.
11 Basitleştirme amaçlı yeniden düzenleme Bölüm 10 Refactoring. Fowler et.al. pp. 271-315.
12 Genelleştiren yeniden düzenlemeler Bölüm 11 Refactoring. Fowler et.al. pp. 319-355.
13 Öğrenci sunumları
14 Öğrenci sunumları
15 Tekrar
16 Final
Ders Kitabı “Design patterns: Elements of Reusable Object-Oriented Software” by E. Gamma, R. Helm, R. Johnson and J. Vlissides.Addison-Wesley. 1995. ISBN-13: 978-0-201-63361, ISBN-10: 0-201-63361-2 “Refactoring, Improving the design of existing code” by Martin Fowler, Kent Beck, John Brant, William Opdyke, Don Roberts. 1999 ISBN-13: 978-0-201-48567-7, ISBN-10: 0-201-48567-2
Önerilen Okumalar/Materyaller Okutman yansıları

 

DEĞERLENDİRME ÖLÇÜTLERİ

Yarıyıl Aktiviteleri Sayı Katkı Payı %
Katılım
Laboratuvar / Uygulama
Arazi Çalışması
Küçük Sınav / Stüdyo Kritiği
Portfolyo
Ödev
Sunum / Jüri Önünde Sunum
1
20
Proje
1
20
Seminer/Çalıştay
Sözlü Sınav
Ara Sınav
1
30
Final Sınavı
1
30
Toplam

Yarıyıl İçi Aktivitelerin Başarı Notuna Katkısı
3
70
Yarıyıl Sonu Aktivitelerin Başarı Notuna Katkısı
1
30
Toplam

AKTS / İŞ YÜKÜ TABLOSU

Yarıyıl Aktiviteleri Sayı Süre (Saat) İş Yükü
Teorik Ders Saati
(Sınav haftası dahildir: 16 x teorik ders saati)
16
3
48
Laboratuvar / Uygulama Ders Saati
(Sınav haftası dahildir. 16 x uygulama/lab ders saati)
16
Sınıf Dışı Ders Çalışması
15
4
60
Arazi Çalışması
Küçük Sınav / Stüdyo Kritiği
Portfolyo
Ödev
Sunum / Jüri Önünde Sunum
1
30
Proje
1
30
Seminer/Çalıştay
Sözlü Sınav
Ara Sınavlar
1
20
Final Sınavı
1
37
    Toplam
225

 

DERSİN ÖĞRENME ÇIKTILARININ PROGRAM YETERLİLİKLERİ İLE İLİŞKİSİ

#
Program Yeterlilikleri / Çıktıları
* Katkı Düzeyi
1
2
3
4
5
1 Bilgisayar Mühendisliği temel kuramlarını üst düzeyde anlar ve uygular, X
2 Bilgisayar Mühendisliği'nde en son gelişmeler dahil olmak üzere genişlemesine ve derinlemesine bilgi sahibidir, X
3 Bilgisayar Mühendisliği'nde en yeni bilgilere ulaşır ve bunları kavrayarak araştırma yapabilmek için gerekli yöntem ve becerilerde üst düzeyde yeterliğe sahiptir, X
4 Bilime veya teknolojiye yenilik getiren, yeni bir bilimsel yöntem veya teknolojik ürün/süreç geliştiren ya da bilinen bir yöntemi yeni bir alana uygulayan kapsamlı bir çalışma yapar, X
5 Özgün bir araştırma sürecini bağımsız olarak algılar, tasarlar, uygulama ve sonuçlandırır; bu süreci yönetir, X
6 Akademik çalışmalarının çıktılarını saygın akademik ortamlarda yayınlayarak bilim ve teknoloji literatürüne katkıda bulunur, X
7 Bilimsel, teknolojik, sosyal ve kültürel gelişmeleri değerlendirir ve bilimsel tarafsızlık ve etik sorumluluk bilinciyle topluma aktarır,
8 Bilgisayar Mühendisliği'nde fikirlerin ve gelişmelerin eleştirel analizini, sentezini ve değerlendirmesini yapar, X
9 Bilgisayar Mühendisliği'nde çalışanlarla ve daha geniş bilimsel ve sosyal topluluklarla yazılı ve sözlü etkin iletişim kurar, İngilizce'yi en az Avrupa Dil Portföyü C1 Genel Düzeyinde kullanarak ileri düzeyde yazılı, sözlü ve görsel iletişim kurar ve tartışır, X
10 Bilgisayar Mühendisliğinin kullanıldığı sistem ve konularla ilgili strateji, politika ve planlar geliştirir ve elde edilen sonuçları yorumlar.

*1 Lowest, 2 Low, 3 Average, 4 High, 5 Highest